步骤 9:打包安装程序

接下来,假设我们想要将我们的项目分发给其他人以便他们可以使用它。我们希望在各种平台上提供二进制和源代码发行版。这与我们在之前的安装 测试中所做的安装略有不同,我们在那里安装了我们从源代码构建的二进制文件。在这个例子中,我们将构建支持二进制安装和包管理功能的安装包。为了实现这一点,我们将使用 CPack 来创建特定于平台的安装程序。具体来说,我们需要在顶层CMakeLists.txt文件的底部添加几行代码。

CMakeLists.txt
include(InstallRequiredSystemLibraries)
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/License.txt")
set(CPACK_PACKAGE_VERSION_MAJOR "${Tutorial_VERSION_MAJOR}")
set(CPACK_PACKAGE_VERSION_MINOR "${Tutorial_VERSION_MINOR}")
set(CPACK_GENERATOR "TGZ")
set(CPACK_SOURCE_GENERATOR "TGZ")
include(CPack)

这就是全部内容。我们首先包含 InstallRequiredSystemLibraries。此模块将包含当前平台项目所需的任何运行时库。接下来,我们设置一些 CPack 变量,指向我们存储此项目的许可证和版本信息的位置。版本信息已在本教程的早期设置,并且 License.txt 已包含在此步骤的顶层源目录中。CPACK_GENERATORCPACK_SOURCE_GENERATOR 变量分别选择用于二进制和源代码安装的生成器。

最后,我们包含 CPack 模块,它将使用这些变量和当前系统的其他一些属性来设置安装程序。

下一步是以通常的方式构建项目,然后运行 cpack 可执行文件。要构建二进制发行版,请从二进制目录运行

cpack

要指定二进制生成器,请使用 -G 选项。对于多配置构建,请使用 -C 来指定配置。例如

cpack -G ZIP -C Debug

有关可用生成器的列表,请参阅 cpack-generators(7) 或调用 cpack --help。像 ZIP 这样的 archive 生成器 创建所有已安装文件的压缩存档。

要创建完整源代码树的存档,您应该键入

cpack --config CPackSourceConfig.cmake

或者,运行 make package 或右键单击 Package 目标,然后从 IDE 中 构建 项目

运行在二进制目录中找到的安装程序。然后运行已安装的可执行文件并验证它是否工作。